/*
 * Recibidor_Agente.cpp
 *
 *  Created on: 06/06/2012
 *      Author: sebastian
 */

#include "Recibidor_Agente.h"

Recibidor_Agente::Recibidor_Agente(std::string puerto, int sockfd, Servidor& servidor) : socket_agente(puerto.c_str(), sockfd), server(servidor) {
}

Recibidor_Agente::Recibidor_Agente(int puerto, int fd, Servidor& servidor) : socket_agente(puerto, fd), server(servidor) {

}

Recibidor_Agente::~Recibidor_Agente() {
}

void Recibidor_Agente::run() {
	char buffer[BUFFER_SIZE];
	while(isRunning()) {
		int cant = socket_agente.recibir(buffer, BUFFER_SIZE);
		std::cout << buffer;
		if(cant <= 0)
			stop();
		else {
		buffer[cant] = 0;
		std::string respuesta(buffer);
		respuesta.resize(respuesta.size() - 1);
		server.guardar(respuesta);
		std::cout << respuesta << std::endl;
		}
	}
}

void Recibidor_Agente::cerrar() {
	socket_agente.cerrar();
}
